#ifndef MODELWIDGET_H
#define MODELWIDGET_H

#include <QWidget>
#include <QtWidgets/QHBoxLayout>
#include <QColorDialog>
#include <QDebug>
#include "loadobj.h"

namespace Ui {
class ModelWidget;
}

class ModelWidget : public QWidget
{
    Q_OBJECT

public:
    explicit ModelWidget(QWidget *parent = nullptr);
    ~ModelWidget();

private slots:
    void on_colorBack_clicked();
    void on_colorLight_clicked();
    void on_lightPoint_toggled(bool checked);
    void on_lightDirect_toggled(bool checked);
    void on_lightSpot_toggled(bool checked);
    void on_sliderIntensity_valueChanged(int value);
    void on_sliderX_valueChanged(int value);
    void on_sliderY_valueChanged(int value);
    void on_sliderZ_valueChanged(int value);
    void on_moveRotate_toggled(bool checked);
    void on_moveSpan_toggled(bool checked);
    void slotShowPos(int xpos,int ypos,int YAngle);

    void on_lightSliderX_valueChanged(int value);
    void on_lightSliderY_valueChanged(int value);
    void on_lightSliderZ_valueChanged(int value);

signals:
    void changeBackColor(QColor);    //背景颜色改变信号
    void changeLightColor(QColor);   //光源颜色改变信号
    void changeLightSource(int);     //光源类型改变信号
    void changeLightIntensity(int);  //光照强度改变信号
    void changeMoveFunc(int);        //鼠标拖动功能改变信号
    void rotateX(int);
    void rotateY(int);
    void rotateZ(int);
    void lightRotateX(int);
    void lightRotateY(int);
    void lightRotateZ(int);

private:
    Ui::ModelWidget *ui;
    QHBoxLayout *m_hLayout = nullptr;
    LoadObj *m_loadModel = nullptr;
};

#endif // MODELWIDGET_H
